(a) Field of the Invention
The present invention relates in general to network rate control, and more particularly to egress/ingress rate control for each port in an Ethernet switch.
(b) Description of the Prior Arts
Under the e-trend, Local Area Network (LAN) has become part of infrastructure for most companies and institutions in recent years. Though there are many kinds of LAN technologies, such as Ethernet, Token Ring and Fiber Distributed Data Interface (FDDI), the most commonly used is Ethernet. Furthermore, fast Ethernet upgrades transmission rate from 10 Mbps to 100 Mbps (even 1 Gbps now).
In Ethernet network, a hub or a switch connects PCs, workstations, servers and so on. Though an Ethernet hub costs less, its bandwidth is shared by all devices connected thereto. Thus the more the connected devices, the more frequently collisions of packets happen. This will impact the performance of network seriously when traffic is heavy.
To solve the problem mentioned, an Ethernet switch is developed. The Ethernet switch learns addresses to record addresses of connected devices in a forwarding table. When the switch receives a frame, it will check whether the destination address of the frame is in the forwarding table. If so, it will forward the frame to a corresponding port; if not, it will broadcast the frame. Based on source MAC (SMAC) address and source port of a packet, the switch updates the forwarding table, and establishes a new correspondence between the destination address and the port. The Ethernet switch can better utilize its bandwidth through the above mechanism and improve the efficiency of network operation.
An Ethernet switch can perform congestion control to improve network throughput. IEEE supplements 802.3 u standard with auto negotiation that allows an Ethernet switch and a device (a network interface card, for example) connected thereto acquiring the capability of each other. The Ethernet switch starts the auto negotiation with the connected device in order to negotiate a proper kind of congestion control according to the capability of the connected device. Generally speaking, there are three kinds of congestion control: (1) When the connected device is full-duplex and capable of flow control, flow control is performed. The switch sends out a flow control frame to request the connected device to stop transmitting packets and to restore after escaping congestion. (2) When the connected device is full-duplex and incapable of flow control, drop control is performed. That is, the switch directly drops packets transmitted by the connected device. (3) When the connected device is half-duplex and incapable of flow control, backpressure is performed. The switch sends out a collision signal to damage a packet in transmitting, and if the connected device detects the collision, it would wait a period of time calculated by Binary Exponential Backoff Algorithm before transmitting the packet again.
Though the Ethernet switch has the advantages mentioned above, there are still drawbacks. In some cases, it is necessary for the switch to perform bandwidth control, That is, the rate of each port in the switch can be adjusted in response to various requirements. For example, an Ethernet local area network typically connects to the Internet via a switch with the help of Internet Service Providers (ISPs). Most ISPs adopt transmission media with wide bandwidth such as optical fibers to build their infrastructure for future upgrade. However, as network throughput that equipments of the ISPs can process is limited, and the ISPs may need to charge different fares for different bandwidth, it is preferred to control transmission rate for different clients. But a conventional Ethernet switch is unable to do this. Consequently, if an access equipment of a client has high access bandwidth, then the client who pays less can still use bandwidth as much as possible without limits. This would invade rights of other users who pay more.
Moreover, if transmission rate of each port in a switch can be adjusted, then network administrators can manage bandwidth efficiently according to the demands of users. However, a conventional Ethernet switch does not provide this kind of function.